﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

public partial class admin_AddFilm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            if (Session["username"] == null)
                Response.Redirect("Login.aspx");
            else
            {
                if (Request.Params.Get("fid") == null)
                {
                    this.calDenNgay.Visible = false;
                    this.calTuNgay.Visible = false;
                    this.btnSua.Visible = false;
                    this.btnThem.Visible = true;

                    if (this.Request.Params["from"] == null || this.Request.Params["to"] == "")
                    {
                        this.lblTuNgay.Text = DateTime.Today.ToShortDateString();
                        this.lblDenNgay.Text = DateTime.Today.ToShortDateString();
                        this.calTuNgay.SelectedDate = DateTime.Today;
                        this.calDenNgay.SelectedDate = DateTime.Today;
                    }
                    else
                    {
                        this.lblTuNgay.Text = DateTime.Parse(Request.Params["from"]).ToShortDateString();
                        this.lblDenNgay.Text = DateTime.Parse(Request.Params["to"]).ToShortDateString();
                        this.calTuNgay.SelectedDate = DateTime.Parse(Request.Params["from"]);
                        this.calDenNgay.SelectedDate = DateTime.Parse(Request.Params["to"]);
                    }
                }
                else
                {
                    this.btnThem.Visible = false;
                    this.btnSua.Visible = true;
                    this.lblInfo.Text = "Cập nhật lịch chiếu phim";
                    this.rowtungay.Visible = false;
                    this.rowdenngay.Visible = false;
                    FilmSchedule fs = new FilmSchedule();
                    DataSet ds = fs.LoadFilmById(Int32.Parse(Request.Params.Get("fid").ToString()));
                    this.txtSuat1.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow1"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow1"].ToString())) : "";
                    this.txtSuat2.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow2"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow2"].ToString())) : "";
                    this.txtSuat3.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow3"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow3"].ToString())) : "";
                    this.txtSuat4.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow4"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow4"].ToString())) : "";
                    this.txtSuat5.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow5"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow5"].ToString())) : "";
                    this.txtSuat6.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow6"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow6"].ToString())) : "";
                    this.txtSuat7.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow7"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow7"].ToString())) : "";
                    this.txtSuat8.Text = (DateParse(ds.Tables[0].Rows[0]["TimeShow8"].ToString()) == true) ? String.Format("{0:HH:mm}", Convert.ToDateTime(ds.Tables[0].Rows[0]["TimeShow8"].ToString())) : "";
                    this.txtTenFilmVN.Text = ds.Tables[0].Rows[0]["NameVN"].ToString();
                    this.txtTenFilmEN.Text = ds.Tables[0].Rows[0]["NameEN"].ToString();
                    this.cbbRapChieu.SelectedIndex = (ds.Tables[0].Rows[0]["Cinema"].ToString() == "7") ? 0 : 1;
                    this.cbbRapChieu.Enabled = false;
                    this.rowupload.Visible = false;
                }
            }
        }
    }
    protected void Image1_Click(object sender, ImageClickEventArgs e)
    {
        //tu ngay
        if (this.calTuNgay.Visible == true)
            this.calTuNgay.Visible = false;
        else
            this.calTuNgay.Visible = true;
    }
    protected void Image2_Click(object sender, ImageClickEventArgs e)
    {
        //den ngay
        if (this.calDenNgay.Visible == true)
            this.calDenNgay.Visible = false;
        else
            this.calDenNgay.Visible = true;
    }
    protected void calTuNgay_SelectionChanged(object sender, EventArgs e)
    {
        this.lblTuNgay.Text = this.calTuNgay.SelectedDate.ToShortDateString();
        this.calTuNgay.Visible = false;
    }
    protected void calDenNgay_SelectionChanged(object sender, EventArgs e)
    {
        this.lblDenNgay.Text = this.calDenNgay.SelectedDate.ToShortDateString();
        this.calDenNgay.Visible = false;
    }
    protected void btnThem_Click(object sender, ImageClickEventArgs e)
    {
        #region Check Valid Input
        if (this.txtTenFilmVN.Text == "")
        {
            this.lblError.Text = "Tên phim tiếng việt đang trùng, vui lòng điền lại thông tin";
            return;
        }
        if (this.txtTenFilmEN.Text == "")
        {
            this.lblError.Text = "Tên phim tiếng anh đang trùng, vui lòng điền lại thông tin";
            return;
        }
        if (this.txtSuat1.Text != "" && this.DateParse(this.txtSuat1.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 1 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat2.Text != "" && this.DateParse(this.txtSuat2.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 2 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat3.Text != "" && this.DateParse(this.txtSuat3.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 3 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat4.Text != "" && this.DateParse(this.txtSuat4.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 4 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat5.Text != "" && this.DateParse(this.txtSuat5.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 5 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat6.Text != "" && this.DateParse(this.txtSuat6.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 6 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat7.Text != "" && this.DateParse(this.txtSuat7.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 7 không dúng, vui lòng nhập lại";
            return;
        }
        if (this.txtSuat8.Text != "" && this.DateParse(this.txtSuat8.Text) == false)
        {
            this.lblError.Text = "Giờ nhập suất chiếu 8 không dúng, vui lòng nhập lại";
            return;
        }
        #endregion
        string StrImg = "";
        if (this.uploadHinhAnh.HasFile)
        {
            try
            {
                StrImg = Path.GetFileName(uploadHinhAnh.FileName);
                uploadHinhAnh.SaveAs(Server.MapPath("~/img/") + StrImg);
                //StatusLabel.Text = "Upload status: File uploaded!";
            }
            catch (Exception ex)
            {
                this.lblError.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message;
                return;
            }
        }
        for (DateTime i = this.calTuNgay.SelectedDate; i <= this.calDenNgay.SelectedDate; i = i.AddDays(1))
        {
            FilmSchedule fs = new FilmSchedule();
            Film f = new Film();
            f.StrFilmNameVn = this.txtTenFilmVN.Text;
            f.StrFilmNameEn = this.txtTenFilmEN.Text;
            f.IntTheather = Int32.Parse(this.cbbRapChieu.SelectedValue);
            f.DateFilmShow = i;

            f.StrImg = ".img/" + StrImg;

            f.TimeFilmShow = new DateTime[8];
            if (DateParse(this.txtSuat1.Text)) f.TimeString[0] = this.txtSuat1.Text; else f.TimeString[0] = "null";
            if (DateParse(this.txtSuat2.Text)) f.TimeString[1] = this.txtSuat2.Text; else f.TimeString[1] = "null";
            if (DateParse(this.txtSuat3.Text)) f.TimeString[2] = this.txtSuat3.Text; else f.TimeString[2] = "null";
            if (DateParse(this.txtSuat4.Text)) f.TimeString[3] = this.txtSuat4.Text; else f.TimeString[3] = "null";
            if (DateParse(this.txtSuat5.Text)) f.TimeString[4] = this.txtSuat5.Text; else f.TimeString[4] = "null";
            if (DateParse(this.txtSuat6.Text)) f.TimeString[5] = this.txtSuat6.Text; else f.TimeString[5] = "null";
            if (DateParse(this.txtSuat7.Text)) f.TimeString[6] = this.txtSuat7.Text; else f.TimeString[6] = "null";
            if (DateParse(this.txtSuat8.Text)) f.TimeString[7] = this.txtSuat8.Text; else f.TimeString[7] = "null";

            //insert to DB
            fs.AddNewFilm(f);
            
        }
        Response.Redirect("Default.aspx");
    }
    public Boolean DateParse(string strDate)
    {
        try
        {
            DateTime d = DateTime.Parse(strDate);
            return true;
        }
        catch (System.Exception ex)
        {
            return false;
        }
    }
    protected void btnSua_Click(object sender, ImageClickEventArgs e)
    {
        FilmSchedule fs = new FilmSchedule();
        Film f = new Film();
        f.StrFilmNameVn = this.txtTenFilmVN.Text;
        f.StrFilmNameEn = this.txtTenFilmEN.Text;
        f.IFilmID = Int32.Parse(this.Request.Params.Get("fid").ToString());
        f.TimeFilmShow = new DateTime[8];
        if (DateParse(this.txtSuat1.Text)) f.TimeString[0] = this.txtSuat1.Text; else f.TimeString[0] = "null";
        if (DateParse(this.txtSuat2.Text)) f.TimeString[1] = this.txtSuat2.Text; else f.TimeString[1] = "null";
        if (DateParse(this.txtSuat3.Text)) f.TimeString[2] = this.txtSuat3.Text; else f.TimeString[2] = "null";
        if (DateParse(this.txtSuat4.Text)) f.TimeString[3] = this.txtSuat4.Text; else f.TimeString[3] = "null";
        if (DateParse(this.txtSuat5.Text)) f.TimeString[4] = this.txtSuat5.Text; else f.TimeString[4] = "null";
        if (DateParse(this.txtSuat6.Text)) f.TimeString[5] = this.txtSuat6.Text; else f.TimeString[5] = "null";
        if (DateParse(this.txtSuat7.Text)) f.TimeString[6] = this.txtSuat7.Text; else f.TimeString[6] = "null";
        if (DateParse(this.txtSuat8.Text)) f.TimeString[7] = this.txtSuat8.Text; else f.TimeString[7] = "null";

        //insert to DB
        Boolean bResult = fs.EditFilm(f);
        if(bResult == true)
            {
                Response.Redirect("Default.aspx");
            }
        else
        {
            this.lblError.Text = "Có lỗi khi cập nhật lịch phim";
        }
    }

}
